LOR-API Documentation
Overview
The LOR-API is a Python-based API that uses OpenSearch. This documentation covers version 1.1.0.
Authentication
All endpoints require Bearer Authentication.
API Endpoints
1. Health Status
Endpoint: /cl/api/v1/health/
Method: GET
Description: Returns the health status of the API.
Response: 200 - Successful response with status message
2. Directory Management
2.1 Root Directory
Endpoint: /cl/api/v1/directory/root
GET
- Description: Fetches root directory information for a specific tenant
- Parameters:
ext_user_id_ref
(optional): External User ID
- Responses:
- 200: Root directory found
- 404: Not found
- 400: Connection error
- 500: Internal server error
- 422: Validation error
POST
- Description: Creates a root directory for a tenant
- Request Body: Payload to create root directory
- Responses:
- 201: Successfully created
- 409: Conflict, directory already exists
- 422: Validation error
/cl/api/v1/directory/root
Request Payload of root (Get Method):
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
/cl/api/v1/directory/root
Request Payload of root (Post Method):
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Parameter | tenant_code | Tenant code associated with the request | Yes |
/cl/api/v1/directory/{folder_id}
Request Payload of folder_id (Get Method):
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | folder_id | Unique folder ID (UUID format) | Yes |
Query Parameter | sorting_by | Sort result by title or modified_date | No |
Query Parameter | order | Sort result in ascending or descending order | No |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Sorting Options:
sorting_by
: Available values:title
,updated_at
(Default:updated_at
)order
: Available values:asc
,desc
(Default:asc
)
/cl/api/v1/directory/{folder_id}
Request Payload of folder_id (Put Method):
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | folder_id | Folder ID of the directory to be updated | Yes |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Parameter | name | Name of the folder | Yes |
Parameter | is_private | Whether the folder is private (true/false) | Yes |
Parameter | type | Type of the item (e.g., "Folder") | Yes |
Parameter | custom_metadata | Custom metadata for the folder | No |
Custom Metadata:
kvp
: Key-value pairstags
: List of tagstaxonomy
: List of taxonomy with UUID and title
/cl/api/v1/directory/{folder_id}
Request Payload of folder_id (Post Method):
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | folder_id | Folder ID of the directory to be updated | Yes |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Parameter | directory_structure | Directory structure with folders and metadata | Yes |
/cl/api/v1/directory/{folder_id}
Request Payload of folder_id (Delete Method):
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | folder_id | Folder ID of the directory to be updated | Yes |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
/cl/api/v1/directory/details/bulk
Request Payload of bulk:
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Parameter | folder_ids | List of folder IDs | Yes |
/cl/api/v1/directory/aggregate/details
Request Payload of aggregate:
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | query_string | Query string to search for folders | Yes |
Query Parameter | sort_by | Sort results by title or updated_at | No |
Query Parameter | order | Sort result in ascending or descending order | No |
Query Parameter | page_no | Page number for the results (Minimum: 1) | No |
Query Parameter | page_size | Number of results per page (Default: 20) | No |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Parameter | object_ids | List of object IDs to filter by | No |
Parameter | folder_ids | List of folder IDs to filter by | No |
Parameter | with_exact_search | Whether to search for exact matches | No |
Parameter | is_private | Whether the folder is private (true/false) | No |
Parameter | created_by | User who created the folder | No |
Parameter | updated_by | User who last updated the folder | No |
Parameter | created_at | Date the folder was created (ISO format) | No |
Parameter | updated_at | Date the folder was last updated (ISO format) | No |
Parameter | custom_metadata | Custom metadata for filtering folders | No |
Parameter | is_anywhere | Whether to search anywhere within the folder | No |
Sorting Options:
sort_by
: Available values:title
,updated_at
(Default:updated_at
)order
: Available values:asc
,desc
(Default:asc
)
Pagination:
page_no
: Default value: 1page_size
: Default value: 20
Directory Structure:
name
: Name of the folderis_private
: Whether the folder is private (true/false)type
: Type of the item (e.g., "Folder")children
: List of child items (if any)custom_metadata
: Custom metadata associated with the folderkvp
: Key-value pairstags
: List of tagstaxonomy
: List of taxonomy with UUID and title
2.2 Folder Operations
Endpoint: /cl/api/v1/directory/{folder_id}
GET
- Parameters:
folder_id
(required): UUID formatsorting_by
(optional): Sort by title or modified dateorder
(optional): Ascending or descending
- Responses:
- 200: Directory found
- 404: Directory not found
- 500: Internal server error
- 422: Validation error
PUT
- Description: Updates metadata of a directory
- Parameters:
folder_id
(required)ext_user_id_ref
(optional)
- Responses:
- 200: Successfully updated
- 403: Forbidden (attempt to update root directory)
- 404: Not found
- 409: Conflict
- 422: Validation error
POST
- Description: Adds directories to existing directory
- Parameters:
folder_id
(required): Parent folder IDext_user_id_ref
(optional)
- Responses:
- 201: Successfully added
- 206: Partially added
- 400: Connection error
- 404: Parent directory not found
- 409: Conflict
- 422: Validation error
DELETE
- Description: Deletes directory and child directories
- Parameters:
folder_id
(required)ext_user_id_ref
(optional)
- Responses:
- 200: Successfully deleted
- 403: Forbidden (root directory)
- 404: Directory not found
- 422: Validation error
3. Object Management
3.1 Create Object
Endpoint: /cl/api/v2/objects
Method: POST
- Parameters:
ext_user_id_ref
(optional)
- Request Body: ObjectCreatePayloadV2
- Responses:
- 200: Object created successfully
- 400: Invalid argument
- 404: Object not found
- 500: Internal server error
- 422: Validation error
3.2 Get Object Details
Endpoint: /cl/api/v2/objects/{object_id}
Method: GET
- Parameters:
object_id
(required): UUIDext_user_id_ref
(optional)
- Responses:
- 200: Object details retrieved
- 404: Object not found
- 400: Invalid argument
- 500: Internal server error
- 422: Validation error
3.3 Update Object
Endpoint: /cl/api/v2/objects/{object_id}
Method: PUT
- Parameters:
object_id
(required): UUIDext_user_id_ref
(optional)
- Request Body: ObjectUpdatePayloadV2
- Responses:
- 200: Object updated successfully
- 404: Object not found
- 400: Invalid argument
- 500: Internal server error
- 422: Validation error
/cl/api/v2/objects
Request Payload of objects:
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Parameter | object_id | Unique identifier of the object | Yes |
Parameter | code | Code associated with the object | Yes |
Parameter | version_label | Version label of the object | Yes |
Parameter | object_type | Type of the object (e.g., "Document") | Yes |
Parameter | title | Title of the object | No |
Parameter | description | Description of the object | No |
Parameter | repos | List of repositories associated with the object | No |
Parameter | folders | List of folders associated with the object | No |
Parameter | system_metadata | System metadata details | No |
Parameter | custom_metadata | Custom metadata associated with the object | No |
Parameter | media_metadata | Media-specific metadata details | No |
Parameter | source_system_metadata | Metadata about the source system | No |
System Metadata:
source
: Source of the objectis_private
: Whether the object is private (true/false)is_deleted
: Whether the object is deleted (true/false)is_lga
: Legal age group (e.g., "G")license_expiration_date
: License expiration date (ISO format)license_validity
: Whether the license is valid (true/false)created_by_name
: Name of the user who created the objectis_latest_version
: Whether the object is the latest version (true/false)source_category
: Source category of the objectextracted_text_file_url
: URL to the extracted text file
Custom Metadata:
tags
: List of tagskvp
: Key-value pairs with metadata IDstaxonomy
: Taxonomy-related metadatasettings
: Additional settings
Media Metadata:
transcription_details
: Details about transcription (ID, language, URL, label)streaming_details
: Streaming metadata (resolution, URL, label)image_details
: Image metadata (height, width, thumbnail, credit line, additional metadata)
Source System Metadata:
source_system_id
: Unique identifier for the source systemconnector_info
: Connector-related informationsource_url
: Source URL of the object
/cl/api/v2/objects/{object_id}
Request Payload of objects (Put Method):
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | object_id | Object ID of an existing object (UUID) | Yes |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
/cl/api/v2/objects/{object_id}
Request Payload of objects (Delete Method):
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | object_id | Object ID of an existing object to be updated (UUID) | Yes |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Parameter | version_label | Version label of the object | No |
Parameter | object_type | Type of the object (e.g., "Document") | Yes |
Parameter | create_new_version | Flag to indicate if a new version should be created (true/false) | No |
Parameter | title | Title of the object | No |
Parameter | description | Description of the object | No |
Parameter | file_name | File name of the object | No |
Parameter | file_extension | File extension of the object | No |
Parameter | association | List of associated objects | No |
Parameter | uri | URI of the object | No |
Parameter | repos | List of repositories associated with the object | No |
Parameter | folders | List of folders associated with the object | No |
Parameter | system_metadata | System metadata details | No |
Parameter | custom_metadata | Custom metadata associated with the object | No |
Parameter | media_metadata | Media-specific metadata details | No |
System Metadata:
source
: Source of the objectis_private
: Whether the object is private (true/false)is_deleted
: Whether the object is deleted (true/false)is_lga
: Legal age group (e.g., "G")license_expiration_date
: License expiration date (ISO format)license_validity
: Whether the license is valid (true/false)created_by_name
: Name of the user who created the objectis_latest_version
: Whether the object is the latest version (true/false)source_category
: Source category of the objectextracted_text_file_url
: URL to the extracted text file
Custom Metadata:
tags
: List of tagskvp
: Key-value pairs with metadata IDstaxonomy
: Taxonomy-related metadatasettings
: Additional settings
Media Metadata:
transcription_details
: Details about transcription (ID, language, URL, label)streaming_details
: Streaming metadata (resolution, URL, label)image_details
: Image metadata (height, width, thumbnail, credit line, additional metadata)
/cl/api/v2/objects/{object_id}
Request Payload of objects (Delete Method):
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | object_id | Object ID of an existing object (UUID) | Yes |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
/cl/api/v2/objects/{object_id}/uploadfile
Request Payload of objects Uploadfile:
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | object_id | Object ID of an existing object (UUID) | Yes |
Query Parameter | auto_chunk | Auto-chunk the file (Default value: true) | No |
Query Parameter | auto_generate_alt_text | Auto-generate alternative text (Default value: false) | No |
Query Parameter | auto_generate_cc | Auto-generate closed captions (Default value: false) | No |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Parameter | file | File to be uploaded in the repository against an existing object (binary format) | Yes |
/cl/api/v2/objects/{object_id}/versions/{version_id}/uploadfile
Request Payload of objects:
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | object_id | Object ID of an existing object (UUID) | Yes |
Query Parameter | version_id | Version ID of the existing object (UUID) | Yes |
Query Parameter | auto_chunk | Auto-chunk the file (Default value: true) | No |
Query Parameter | auto_generate_alt_text | Auto-generate alternative text (Default value: false) | No |
Query Parameter | auto_generate_cc | Auto-generate closed captions (Default value: false) | No |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Parameter | file | File to be uploaded in the repository (binary format) | Yes |
/cl/api/v2/objects/{object_id}/versions/{version_id}
Request Payload of objects versions (Get Method):
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | object_id | Object ID of an existing object (UUID) | Yes |
Query Parameter | version_id | Version ID of the existing object (UUID) | Yes |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
/cl/api/v2/objects/{object_id}/versions/{version_id}
Request Payload of objects versions (Delete Method):
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | object_id | Object ID of an existing object (UUID) | Yes |
Query Parameter | version_id | Version ID of the existing object (UUID) | Yes |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
/cl/api/v2/objects/folders/bulk
Request Payload of objects versions:
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
/cl/api/v2/objects/move/bulk
Request Payload of objects versions:
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Parameter | object_ids | List of object IDs | Yes |
Parameter | folder_ids | List of folder IDs | Yes |
Parameter | update_fields | Fields to be updated | Yes |
Update Fields:
parent_id
: Parent folder ID (string)is_private
: Whether the object/folder is private (boolean)
/cl/api/v2/objects/associations
Request Payload of associations:
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Parameter | id | Unique identifier (UUID) | Yes |
Parameter | type | Relationship type (e.g., "isEmbeddedOf") | Yes |
Parameter | origin | Origin details of the object | Yes |
Parameter | destination | Destination details of the object | Yes |
Parameter | source | Source information | No |
Parameter | mode | Operation mode (e.g., "ADD") | Yes |
Origin Fields:
object_id
: Object ID of the origin (string)version_id
: Version ID of the origin (string)version_no
: Version number of the origin (integer)
Destination Fields:
object_id
: Object ID of the destination (string)version_id
: Version ID of the destination (string)
/cl/api/v2/objects/associations/{object_id}/versions/{version_id}
Request Payload of associations versions:
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | object_id | Object ID of an existing object (UUID) | Yes |
Query Parameter | version_id | Version ID of the existing object (UUID) | Yes |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
/cl/api/v2/objects/usagecount/{object_id}/versions/{version_id}
Request Payload of usagecont versions:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | object_id | Object ID of an existing object (UUID) | Yes |
Query Parameter | version_id | Version ID of the existing object (UUID) | Yes |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
/cl/api/v2/objects/deassociations/bulk
Request Payload of deassociations bulk:
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Parameter | ids | List of IDs to be processed | Yes |
Parameter | mode | Operation mode (e.g., "REMOVE") | Yes |
/cl/api/v2/objects/
Request Payload of objects:
Request Payload:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | folder_id | Folder ID (UUID) | Yes |
Query Parameter | sorting_by | Sort result by title or modified date (Available: None, title, updated_at) | No |
Query Parameter | order | Sort result in ascending or descending order (Available: asc, desc) | No |
Query Parameter | object_type | List of object types (Available: Document, Audio, Video, Image, Course, Rubric, Assessment, Assignment, Question, ExternalTool, Glossary, DiscussionForum, Page, Quiz, Outcomes) | No |
Query Parameter | chat_session_id | Chat session ID (UUID) | No |
Query Parameter | page_no | Page number (Default: 1) | No |
Query Parameter | page_size | Records per page (Default: 20) | No |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
4. File Operations
4.1 Upload File
Endpoint: /cl/api/v3/file_upload
Method: POST
- Parameters:
folder_id
(required): UUIDsource_category
(required): KnowledgeBase/Guideline/OutputTemplate/InputFilesession_id
(required): UUIDext_user_id_ref
(optional)
- Content-Type: multipart/form-data
- Responses:
- 200: File upload successful
- 404: File not valid
- 400: Invalid argument
- 500: Internal server error
- 422: Validation error
/cl/api/v2/directory/
Request Payload of directory:
Type | Parameter | Description | Required |
---|---|---|---|
Query Parameter | object_id | Object ID of an existing object (UUID) | Yes |
Query Parameter | version_id | Version ID of the existing object (UUID) | Yes |
Query Parameter | ext_user_id_ref | External user ID reference for the query | Yes |
Data Models
Core Models
MetadataBaseModel
{
"kvp": "object",
"tags": "array[string]",
"taxonomy": "array[object]"
}
ObjectCreatePayloadV2
{
"object_id": "uuid",
"code": "string",
"version_label": "string",
"object_type": "string",
"title": "string",
"description": "string",
"repos": "array",
"folders": "array"
}
ObjectUpdatePayloadV2
{
"version_label": "string",
"object_type": "string",
"create_new_version": "boolean",
"title": "string",
"description": "string",
"file_name": "string",
"uri": "string",
"repos": "array",
"folders": "array"
}
Response Models
ObjectResponse
{
"status": "string",
"message": "string",
"data": "Object | MediaObject"
}